Beispiele: Alternative Status in Diagrammformeln
Diese Beispiele dienen dazu, die besten Praktiken zur Verwendung alternativer Status durch QlikView Developer bzw. starke QlikView Power User aufzuzeigen. Diese Beispiele finden sich in folgender Datei: „Alternate States Functionality.qvw“
Auswahlen zwischen Status synchronisieren
Die folgenden Formeln können in einem einzigen Diagramm verwendet werden:
- count({$} DISTINCT [Rechnungsnummer])
- count({State1} DISTINCT [Rechnungsnummer])
- count({State2} DISTINCT [Rechnungsnummer])
Bei dieser Methode gibt es ein Problem; der QlikView Developer muss die Auswahlen duplizieren (Listboxen und Multiboxen), und zwar für alle drei Status, so dass der Endanwender die entsprechenden Auswahlen für die verschiedenen Status treffen kann. Häufig wird es so sein, dass der QlikView Developer eine „gemeinsame“ Auswahl für alle Status schaffen möchte. Damit kann der Endanwender den Inhalt für die verschiedenen Diagramme festlegen und dann die spezifischen Auswahlen nutzen, um die Unterschiede zwischen den Status aufzuzeigen. Die Aggregierung mit Auswahlformeln kann bei Status dazu genutzt werden, bestimmte Auswahlen zwischen den Status konsistent zu halten.
- count({State1<Year = $::Year, Month = $::Month>} DISTINCT [Rechnungsnummer])
- count({State2<Year = $::Year, Month = $::Month>} DISTINCT [Rechnungsnummer])
Der QlikView Developer hält die Auswahlen für Jahr und Monat in Status1 und Status2 synchron mit den Auswahlen für Jahr und Monat im Standardstatus. Der QlikView Developer kann Elemente zu den eingestellten Modifikatoren nach Bedarf hinzufügen, um sogar noch weitere Felder unter den Status konsistent zu halten.
Operatoren für Auswahlformeln
Es ist möglich, Operatoren (+, *, -, /) für Auswahlformeln für Status zu nutzen. Die folgenden Formeln sind gültig und zählen die distinkten Rechnungsnummern, die entweder im Standardstatus oder in Status1 sind.
Beispiele:
- count({$ + State1} DISTINCT [Rechnungsnummer])
zählt die distinkten Rechnungsnummern in der Gesamtheit von <Standard>-Status und Status1.
- count({1 - State1} DISTINCT [Rechnungsnummer])
zählt die distinkten Rechnungsnummern, die nicht in Status1 sind.
- count({State1 * State2} DISTINCT [Rechnungsnummer])
zählt die distinkten Rechnungsnummern, die sowohl im <Standard>-Status wie in Status1 sind.
Implizite Feldwert-Definitionen
Eine andere Möglichkeit der Verwendung von Operatoren für Auswahlformeln steht mit den Elementfunktionen P() und E() zur Verfügung. Diese Funktionen sind nur innerhalb von Auswahlformeln verfügbar.
Beispiele:
- count({$<[Invoice Number] = p({State1} [Rechnungsnummer])>} DISTINCT [Rechnungsnummer])
Diese Formel zählt die distinkten Rechnungsnummern im <Standard>-Status auf Basis der möglichen Rechnungsnummern, die in Status1 verfügbar sind.
Sie ist fast, aber nicht ganz, identisch mit der folgenden Formel:
- count({$<[Invoice Number] = State1::[Invoice Number]>} DISTINCT [Rechnungsnummer])
Der Unterschied zwischen den Formeln ist, dass bei der ersten die wählbaren Werte für die Rechnungsnummer von Status1 an den Standard-Status weitergegeben werden. Bei der zweiten Formel werden die ausgewählten Werte von Status1 an den Standard-Status weitergegeben. Wenn der Benutzer in Status1 keine Rechnungsnummern ausgewählt hat, werden keine Rechnungsnummer-Werte an den Standard-Status weitergegeben.
Operatoren für Auswahlformeln werden am besten innerhalb von Modifikatoren verwendet. Die folgende Formel findet den Schnittpunkt der möglichen Rechnungsnummern von Status1 und Status2 und gibt diese Werte an die Rechnungsnummern im Standard-Status weiter.
Beispiele:
- count({$<[Invoice Number] = p({State1} [Rechnungsnummer]) * p({State2} [Rechnungsnummer])>} DISTINCT [Rechnungsnummer])
Die Formel zum Finden des Schnittpunktes der Rechnungsnummern zwischen <Standard>-Status und Status1 ist:
- count({$<[Invoice Number] = p({$} [Rechnungsnummer]) * p({State1} [Rechnungsnummer])>} DISTINCT [Rechnungsnummer])
Diese Formel mag verwirrend erscheinen, weil sie sowohl in der Elementfunktion wie auch in einem festgelegten Identifikator einen Status verwendet (in diesem Fall <Standard>). Denken Sie daran, dass die Elementfunktion p($) die wählbaren Werte an den Standard-Status liefert. Der festgelegte/Status-Identifikator {$} wird vom Ergebnis der Elementfunktionen geändert. Alle aktuell im Standard-Status vorhandenen Rechnungsauswahlen werden von den Werten aus dem Schnittpunkt der Elementfunktionen überschrieben.
Es ist zu beachten, dass obige Formel immer noch nicht ganz korrekt ist, da sie nicht synchron mit den allgemeinen Auswahlen zwischen dem Standard-Status und Status1 ist. Unten finden Sie eine Formel, die dies leistet:
Beispiele:
- count({$<[Invoice Number] = p({$} [Rechnungsnummer]) * p({State1<Year = $::Year, Month = $::Month>} [Rechnungsnummer])>} DISTINCT [Rechnungsnummer])
Wie schon zuvor kann der QlikView Developer Felder zum Modifikator hinzufügen, um die Auswahlen zwischen den verschiedenen Status konsistent zu halten.